Mobile devices commonly have graphics display systems that includes a host, a camera, a display device, and a graphics controller. The graphics controller drives the display device and interfaces the host and the camera with the display device. The graphics controller commonly includes an embedded memory for storing image data and logic for performing various image processing operations. The display device may render static or video image data. A mobile device may be, for example, a mobile telephone, personal digital assistant, digital camera, or digital music player. Mobile devices typically rely primarily on a battery for power. To maximize battery life in these devices, it is important to minimize power consumption. It is also important to minimize the size of the memory, which reduces cost and also reduces power requirements.
In graphics display systems, it is frequently necessary to change the size and dimensions of images. For example, it may be necessary to reduce the size of an image so that it will fit into the memory. In addition, it may be necessary to increase the height or width of an image so that it will fill a display window. In mobile devices, the graphics controller often performs the image scaling operations. When an image scaling operation is desired, the graphics controller may be provided with image data, one or more scaling parameters, and a command to scale the image.
Typically, the host determines when an image scaling operation is desired, calculates the scaling parameter(s), and issues the command to the graphics controller. Mobile devices are increasingly being used to display video image data. A camera in the mobile device or another source, such as a component providing a television broadcast input, may provide video image data to the graphics controller. Video image data are provided at regular intervals, for example, 20 frames per second. For each video frame, the host recognizes when a new frame in the video stream needs to be scaled, calculates the scaling parameter(s), and issues the appropriate scaling command to the graphics controller. However, the host in a mobile device, such as a mobile telephone, can be quite busy with processing tasks associated with communications functions. Interrupting the host each time a new frame is received or needs to be written to the display so that the host can calculate a scaling parameter and issue a command to the graphics controller can be extremely burdensome for the host.
Accordingly, methods and apparatus for efficient scaling of image data in graphics display systems would be desirable.